<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // JS异步

    // 异步任务: 计时器 延时器  ajax  事件


    // JavaScript语言的设计者也意识到这个问题，于是，所有任务可以分成两种，一种是同步任务（synchronous），另一种是异步任务（asynchronous）。同步任务指的是，在主线程上排队执行的任务，只有前一个任务执行完毕，才能执行后一个任务；异步任务指的是，不进入主线程、而进入”任务队列”（task queue）的任务，只有”任务队列”通知主线程，某个异步任务可以执行了，该任务才会进入主线程执行;



    /* // console.time("a");
    console.log("代码开始执行!");
    for (let i = 0; i < 6; i++) {
        setTimeout(function () {
            // console.timeLog("a");
            console.log(i);
        }, 1000);
    }
    console.log("代码执行完毕!");
    // console.timeLog("a"); */


    // console.log(1);
    // setTimeout(function () {
    //     console.log(2);
    // }, 0)
    // console.log(3);

    // console.log(1);
    // window.onload = function () {
    //     console.log(2);
    // }
    // console.log(3);



    // console.log(1);
    // var xhr = new XMLHttpRequest(); // 0
    // xhr.open("get", "../data/1.txt", true); // 1

    // xhr.send(); // 1


    // xhr.onreadystatechange = function () {

    //     if (xhr.readyState == 4 && xhr.status == 200) {
    //         var result = xhr.responseText;
    //         console.log(result);
    //     }
    // }
    // console.log(3);


    console.log(1);
    setTimeout(function () {
        console.log("a:计时器");
    }, 10);

    window.onload = function () {
        console.log("b:页面加载");
    }

    // var xhr = new XMLHttpRequest(); // 0
    // xhr.open("get", "../data/1.txt", true); // 1

    // xhr.send();

    // xhr.onreadystatechange = function () {

    //     if (xhr.readyState == 4 && xhr.status == 200) {
    //         var result = xhr.responseText;
    //         console.log("c:ajax成功");
    //     }
    // }
    console.log(3);




</script>

</html>